home *** CD-ROM | disk | FTP | other *** search
/ Dr. Windows 3 / dr win3.zip / dr win3 / PROGRAMR / OLE2BOOK.ZIP / CHAP06.ZIP / CHAP06 / EDATAOBJ / EDATAOBJ.H < prev    next >
C/C++ Source or Header  |  1993-03-27  |  2KB  |  86 lines

  1. /*
  2.  * EDATAOBJ.H
  3.  *
  4.  * Definitions, classes, and prototypes for an application that
  5.  * provides DataObject objects to any other object user.
  6.  *
  7.  * Copyright (c)1993 Microsoft Corporation, All Rights Reserved
  8.  *
  9.  * Kraig Brockschmidt, Software Design Engineer
  10.  * Microsoft Systems Developer Relations
  11.  *
  12.  * Internet  :  kraigb@microsoft.com
  13.  * Compuserve:  >INTERNET:kraigb@microsoft.com
  14.  */
  15.  
  16.  
  17. #ifndef _EDATAOBJ_H_
  18. #define _EDATAOBJ_H_
  19.  
  20. #include "dataobj.h"
  21.  
  22.  
  23. //EDATAOBJ.CPP
  24. LRESULT FAR PASCAL __export DataObjectWndProc(HWND, UINT, WPARAM, LPARAM);
  25.  
  26. class __far CAppVars
  27.     {
  28.     friend LRESULT FAR PASCAL __export DataObjectWndProc(HWND, UINT, WPARAM, LPARAM);
  29.  
  30.     protected:
  31.         HINSTANCE       m_hInst;            //WinMain parameters
  32.         HINSTANCE       m_hInstPrev;
  33.         LPSTR           m_pszCmdLine;
  34.         UINT            m_nCmdShow;
  35.  
  36.         HWND            m_hWnd;             //Main window handle
  37.         BOOL            m_fInitialized;     //Did CoInitialize work?
  38.  
  39.         //We have multiple classes, one for each data size.
  40.         DWORD           m_rgdwRegCO[DOSIZE_CSIZES];
  41.         LPCLASSFACTORY  m_rgpIClassFactory[DOSIZE_CSIZES];
  42.  
  43.     public:
  44.         CAppVars(HINSTANCE, HINSTANCE, LPSTR, UINT);
  45.         ~CAppVars(void);
  46.         BOOL FInit(void);
  47.     };
  48.  
  49.  
  50. typedef CAppVars FAR * LPAPPVARS;
  51.  
  52. #define CBWNDEXTRA              sizeof(LONG)
  53. #define DATAOBJWL_STRUCTURE     0
  54.  
  55.  
  56. void FAR PASCAL ObjectDestroyed(void);
  57.  
  58.  
  59.  
  60. //This class factory object creates DataObject objects.
  61.  
  62. class __far CDataObjectClassFactory : public IClassFactory
  63.     {
  64.     protected:
  65.         ULONG           m_cRef;         //Reference count on class object
  66.         UINT            m_iSize;        //Data size for this class.
  67.  
  68.     public:
  69.         CDataObjectClassFactory(UINT);
  70.         ~CDataObjectClassFactory(void);
  71.  
  72.         //IUnknown members
  73.         STDMETHODIMP         QueryInterface(REFIID, LPVOID FAR *);
  74.         STDMETHODIMP_(ULONG) AddRef(void);
  75.         STDMETHODIMP_(ULONG) Release(void);
  76.  
  77.         //IClassFactory members
  78.         STDMETHODIMP         CreateInstance(LPUNKNOWN, REFIID, LPVOID FAR *);
  79.         STDMETHODIMP         LockServer(BOOL);
  80.     };
  81.  
  82. typedef CDataObjectClassFactory FAR * LPCDataObjectClassFactory;
  83.  
  84.  
  85. #endif //_EDATAOBJ_H_
  86.